package com.prueba.client.interfaz.ventanas;



import com.prueba.client.datosYlogica.GestorAcciones;
import com.prueba.client.interfaz.grillas.ListGridPlanDeAcciones;
import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.Window;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
import com.smartgwt.client.widgets.form.fields.IntegerItem;
import com.smartgwt.client.widgets.grid.ListGrid;
import com.smartgwt.client.widgets.layout.VLayout;

public class VentanaPlanDeAccion extends Window{
	static public VentanaPlanDeAccion getInstance(){
		if (singleton==null){
			singleton=new VentanaPlanDeAccion();
		}
		return singleton;
	}
	static private VentanaPlanDeAccion singleton=null;

	static private DynamicForm form=null;
	private VentanaPlanDeAccion(){
		super();
		this.maximize();
		this.setShowMaximizeButton(false);
		this.setShowMinimizeButton(false);
		this.setShowCloseButton(false);
		this.setCanDrag(false);
		this.setCanDragReposition(false);
		this.setShowResizeBar(true);
		this.setTitle("Plan de acciones");


		//grilla o tabla del documento
		ListGrid tablaPlanDeAccion=ListGridPlanDeAcciones.getInstance();
		
		//formulario esfuerzo de iteracion
		form=new DynamicForm();
		IntegerItem numeroIteracion = new IntegerItem("numeroIteracion","Nro. de iteracion");
		numeroIteracion.setDefaultValue(1);
        IntegerItem esfuerzoIteracion = new IntegerItem("esfuerzoIteracion","Esfuerzo de iteracion");
        esfuerzoIteracion.setType("INTEGER");
        esfuerzoIteracion.setDefaultValue(10);
        form.setFields(numeroIteracion,esfuerzoIteracion);
        form.setLayoutAlign(Alignment.LEFT); 
		
		//boton ejecutar planer:
		IButton ejecutar = new IButton("Ejecutar planer");
		ejecutar.setAutoFit(true); 
		ejecutar.addClickHandler(new ClickHandler() {  
            @Override
			public void onClick(ClickEvent event) {  
            	try{
                	int costo=Integer.valueOf((String)(form.getField("esfuerzoIteracion").getValue()));
                	if(costo<=0)
                		throw new RuntimeException("El esfuerzo de iteracion debe ser mayor que 0");

                	GestorAcciones.ejecutarPlaner(costo);

                }catch(NumberFormatException e){
                	SC.warn("Ingrese un numero mayor que 0 como costo de iteracion");
            	}catch( RuntimeException e){
                	SC.warn(e.getMessage());
                }
            } });
		ejecutar.setLayoutAlign(Alignment.RIGHT); 

        //agregando componentes a la ventana:

        /*HLayout hlayout=new HLayout();
        	hlayout.addMember(form);
        	hlayout.addMember(ejecutar);
        VLayout layout=new VLayout();
        	layout.addMember(tablaPlanDeAccion);	
        	layout.addMember(hlayout);*/	

        VLayout layout=new VLayout();
        	layout.addMember(tablaPlanDeAccion);	
        	layout.addMember(form);
        	layout.addMember(ejecutar);
        	
        this.addItem(layout);		

	}
}
